﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Urgencias.Controlador;
using Urgencias.Modelo;

namespace Urgencias.Vista
{
    public partial class IngresarUrgenciaUC : UserControl
    {
        int ID_URGENCIA; int NUMEROBOX; string ENCARGADO; string PACIENTE; DateTime FECHAHORA_URGENCIA; string PRIORIDAD_URGENCIA; string ESPECIALIDAD_URGENCIA; string DIAGNOSTICO_URGENCIA;

        public IngresarUrgenciaUC()
        {
            InitializeComponent();
        }

        private void IngresarUrgenciaUC_Load(object sender, EventArgs e)
        {
            foreach (var v in MedicoControlador.Instance.obtenerEspecialidadesMedicas())
            {
                especialidadCB.Items.Add(v);    
            }
            especialidadCB.SelectedIndex = 0;
            urgenciaCB.DataSource = Enum.GetValues(typeof(NivelUrgencia));
        }

        public void reestablecer()
        {
            this.rutBox.ResetText();
            this.encargadoBox.ResetText();
            this.diagnosticoBox.ResetText();
            this.urgenciaCB.SelectedIndex = 0;
            this.especialidadCB.SelectedIndex = 0;
        }

        private void guardarBTN_Click(object sender, EventArgs e)
        {
            //string RutPaciente, Especialidad, Diagnostico, Prioridad, Encargado;
            
            Urgencia u = new Urgencia();
            u.DiagnosticoUrgencia = diagnosticoBox.Text;

            if (u.DiagnosticoUrgencia.Length < 1)
            {
                MessageBox.Show(Properties.Resources.ConsultaDiagnostico);
                diagnosticoBox.Focus();
                return;
            }
            u.RutPaciente = rutBox.Text;
            u.Encargado = encargadoBox.Text;
            u.EspecialidadUrgencia = especialidadCB.Text;
            u.PrioridadUrgencia = urgenciaCB.Text;
            
            u.FechaHoraUrgencia = DateTime.Now;

            u.Box = 1;

            if (UrgenciaControlador.Instance.ingresarUrgencia( u.IdUrgencia, u.Box,  u.Encargado, u.RutPaciente,  u.FechaHoraUrgencia, u.PrioridadUrgencia, u.EspecialidadUrgencia, u.DiagnosticoUrgencia))
            {
                reestablecer();
                MessageBox.Show(Properties.Resources.ConsultaIngreso);
            }
            else
                MessageBox.Show(Properties.Resources.ConsultaIngresoError);
        }

        private void cancelarBTN_Click(object sender, EventArgs e)
        {
            Principal.Instance.limpiar();
        }

        private void encargadoBTN_Click(object sender, EventArgs e)
        {
            Funcionario f = FuncionarioControlador.Instance.buscarFuncionarios(encargadoBox.Text);

            if (f==null)
            {
                MessageBox.Show(Properties.Resources.MedicoBError);
                encargadoBox.ResetText();
                encargadoBox.Focus();
            }
            else
            {
                this.nombreEncargado.Text = f.ApellidoPaterno+ " "+f.ApellidoMaterno+","+f.Nombre;
                this.urgenciaCB.Enabled = true;
                this.especialidadCB.Enabled = true;
                this.diagnosticoBox.Enabled = true;
                this.guardarBTN.Enabled=true;
            }
        }

        private void buscarPacienteBTN_Click(object sender, EventArgs e)
        {
            Paciente p = PacienteControlador.Instance.buscarPaciente(rutBox.Text);

            if (p == null)
            {
                //MessageBoxButtons.
                //MessageBoxButtons.YesNoCancel
                MessageBox.Show(Properties.Resources.FuncionarioBuscarError,"Error",MessageBoxButtons.OKCancel);
                //MessageBox.Show(

                rutBox.ResetText();
                rutBox.Focus();
            }
            else
            {
                nombrePaciente.Text = p.ApellidoPaterno+ " "+p.ApellidoMaterno+","+p.Nombre;
                rutBox.Text = p.Run;
                this.encargadoBox.Enabled = true;
                this.encargadoBTN.Enabled = true;
            }
        }

        private void limpiarBTN_Click(object sender, EventArgs e)
        {
            reestablecer();
            rutBox.Focus();
        }
    }
}
